<script setup lang="ts">
import { onMounted, ref } from 'vue'
import * as echarts from 'echarts'
// 引入中国地图的JSON数据
import chinaJSON from './china.json'

defineOptions({
  name: 'Map',
})
// 获取DOM元素
const map = ref()
// 注册地图
echarts.registerMap('iChina', chinaJSON as any)
onMounted(() => {
  echarts.init(map.value).setOption({
    // 地图组件
    geo: {
      map: 'iChina',
      roam: true, // 是否开启鼠标缩放和平移漫游
      // zoom:2, // 初始缩放级别
      left: 50, // 地图的位置调试
      top: 50,
      right: 50,
      bottom: 0,
      label: {
        // 地图上文字的样式
        show: true,
        // rotate:45,
        color: 'white',
        fontSize: 14,
      },
      // 每一个多边形的样式
      itemStyle: {
        // areaColor:'blue',
        // 地图区域的颜色
        // color:{
        //   type: 'radial',
        //   x: 0.5,
        //   y: 0.5,
        //   r: 0.5,
        //   colorStops: [{
        //     offset: 0, color: 'red' // 0% 处的颜色
        //   }, {
        //     offset: 1, color: 'blue' // 100% 处的颜色
        //   }],
        //   global: false // 缺省为 false
        // },
        opacity: 0.8,
      },
      emphasis: {
        //高亮一个图形的时候
        focus: 'self',
        itemStyle: {
          color: 'red',
        },
        label: {
          fontSize: 40,
          color: 'black',
        },
      },
    },
    // 布局位置
    grid: {
      left: 0,
      top: 0,
      right: 0,
      bottom: 0,
    },
    series: [
      {
        type: 'lines',
        data: [
          {
            coords: [
              [113.54909, 22.198951], // 起点
              [116.405285, 39.904989], // 终点
              // 如果 polyline 为 true 还可以设置更多的点
            ],
            // 统一的样式设置
            lineStyle: {
              color: 'black',
              width: 1,
              curveness: 0.2,
            },
          },
          {
            coords: [
              [112.549248, 37.857014], // 起点
              [116.405285, 39.904989], // 终点
              // 如果 polyline 为 true 还可以设置更多的点
            ],
            // 统一的样式设置
            lineStyle: {
              color: 'black',
              width: 1,
            },
          },
        ],
        // 是否显示特效
        effect: {
          show: true,
          // symbol:'path://M0 1024l106.496-474.112 588.8-36.864-588.8-39.936-106.496-473.088 1024 512z',
          symbol: 'arrow',
          color: 'black',
          symbolSize: 10,
        },
      },
    ],
  })
})
</script>

<template>
  <div class="box4" ref="map"></div>
</template>

<style scoped lang="scss"></style>
